#include <cstring>
#include <iostream>
#include <cmath>

#include "FEMModel.h"
#include "IterationState.h"
#include "DeformationState.h"


LinkArray<Array<Real> > IterationState::VectorVariables ()
{
	LinkArray<Array<Real> > a;
	return a;
}

void IterationState::IterationStep(DeformationState  * deformation_state) 
{
}

void IterationState::UpdateResidual (DeformationState const*)
{

}

IterationState::IterationState ()
{
	iter_count_ = 0;
}

bool IterationState::GoodSolution (DeformationState const * pstate)const
{
	return true;
}

void IterationState::PrintNodes () const
{
}

void IterationState::Print () const
{


}

void
IterationState::Reinit (DeformationState const * pstate) 
{
}


extern bool Contains (Array<int> const * is, int j);



/*
how many iteration steps to do in one batch. The more expensive one
iteration, the lower this should be.
*/
int IterationState::RelaxationCount (FiniteElementModel*fem)const
{
	return 1;
}

IterationState::~IterationState ()
{

}
